/**
 * ======================================================================
 * 【基本说明】：
 * MobileIMSDK-Web版的通信协议数据传输封装对象.
 * 本对象与MobileIMSDK-APP版的Protocal类是对应的，要保持APP版与Web版的互通，首
 * 要条件是本对象的一致性。
 *
 * Created by Jack Jiang on 16-8-29.
 * ======================================================================
 */


function Protocal(){
    /**
     * 意义：协议类型。
     * 注意：本字段为框架专用字段，本字段的使用涉及IM核心层算法的表现，如无必要请避免应用层使用此字段。
     * 补充：理论上应用层不参与本字段的定义，可将其视为透明，如需定义应用层的消息类型，请使用typeu字
     *      段并配合dataContent一起使用。
     *
     * @see protocal-type.js
     * */
    this.type = 0;
    /**
     * 意义：协议数据内容。
     * 说明：本字段用于MobileIMSDK_X框架中时，可能会存放一些指令内容。当本字段用于应用层时，由用户自行
     *      定义和使用其内容。
     * */
    this.dataContent = null;

    /**
     * 意义：消息发出方的id（当用户登陆时，此值可不设置）
     * 说明：为“-1”表示未设定、为“0”表示来自Server。
     * */
    this.from = "-1";
    /**
     * 意义：消息接收方的id（当用户退出时，此值可不设置）
     * 说明：为“-1”表示未设定、为“0”表示发给Server。
     * */
    this.to = "-1";

    /**
     * 意义：用于消息的指纹特征码（理论上全局唯一）.
     * 注意：本字段为框架专用字段，请勿用作其它用途。
     * */
    this.fp = null;

    /**
     * 意义：应用层专用字段——用于应用层存放聊天、推送等场景下的消息类型。
     * 注意：此值为-1时表示未定义。MobileIMSDK_X框架中，本字段为保留字段，不参与框架的核心算法，专留用应用
     *      层自行定义和使用。
     *
     * @since 3.0, at 20161021
     * */
    this.typeu = -1;
}


module.exports = Protocal;